package com.mdhw.guanlin.service;

import com.mdhw.common.base.MiliPageData;
import com.mdhw.config.R;
import com.mdhw.mili.vo.area.CityVo;
import com.mdhw.mili.vo.area.ParksVo;
import com.mdhw.mili.vo.area.VisitorVo;
import com.mdhw.mili.vo.system.DictDataVo;
import com.mdhw.mili.vo.system.FaceCheckVo;
import com.mdhw.mili.vo.user.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.List;

public interface GuanlinService {


    public R<MiliPageData<VisitorVo>> selectAllVisitorPage(Integer current, Integer size, String name, String provinceCode, String cityCode,
                                                           String countyCode, String streetCode, Long userId, String type, String cityName);


    public R<FangkeVo> selectFangkeVoByMobile(String fangkeMobile, String projectId);

    public List<CityVo> selectCityList(String name, String provinceCode, String cityCode, String streetCode, String cityName, String projectId) ;

    public R<List<YezhuVo>> selectYezhuVo(String name, String projectId) ;

    public List<ParksVo> selectParksList(String projectId);
    public R<List<DictDataVo>> selectMiliDictDataList(String dictType) ;

    public Boolean visitoraddVisitorByPhone(String phone ,String projectId);

    // 访客申请
    public R registerByVisitor(FangkeRegisterVo fangkeRegisterVo,  String projectId);


    public R<FaceCheckVo> faceUploadAndCheck(MultipartFile file, String projectId) ;

    public R<MiliPageData<FangkeLogVo>> selectFangkeLogPage(Integer current, Integer size, String name);

    // 查询人脸协议
    public R getAuthorizedFaceFk(String phone,String projectId);

    public R<FangkeNotificationVo> visitorNotification(String projectId);

    public R<List<IndexFangkeLogVo>> selectIndexFangkeLogPage(String name,String projectId);

    public R<FangkeQrCodeVo> getFangkeQrCode(String visitId,String projectId);

    public R<FaceCheckVo> faceUploadAndCheckByBase64(String imageBase64, String projectId);

    public R<CheckPassRightVo> checkPassRight(String serialNumber);

    public R<List<VisitorReasonVo>> selectVisitorLabel(String projectId) ;
}
